<?php namespace Admin\Controller; 
//类型管理控制器
class TypeController extends CommonController{
    private $model;
	private $typeAttr;
//  自定义构造函数
    public function __auto(){
        //引Model文件
        $this->model = new \Common\Model\Type;
		$this->typeAttr = new \Common\Model\TypeAttr;
    } 
    
//  首页
    public function index(){
 	
    	$data = $this->model->orderBy('tid','ASC')->get();
//		p($data);
		if(!$data){
			View::error('请先添加类型',U('add'));
		}   		
		View::with('data',$data);
        View::make();
    }
    
//  添加类型
    public function add(){
//  	p(Q("post."));
    	if(IS_POST){
    		if(!$this->model->store()) View::error($this->model->getError());
    		View::success("添加成功",U('index'));
    	}
        View::make();
    }

//  编辑
    public function edit(){
//  	2.获得POST数据,修改数据	调用edit()方法时需要在提交页面添加一个隐藏表单,POST提交时传递id参数
//		p(Q("get."));
		if(IS_POST){
			if($this->model->edit()) View::success("修改成功",U('index'));
			View::error($this->model->getError());
		}
		
//  	1.获得原旧数据
		$tid =Q("get.tid",0,'intval');
//		p($tid);
//		查询相匹配的数据库数据
		$oldData = $this->model->where("tid={$tid}")->find();
//		p($data);
//		分配变量,让表单里默认显示旧数据
		View::with('oldData',$oldData);
		
        View::make();
    }
//  删除
    public function del(){
//  	p(Q("get."));
		$tid = Q('get.tid');
//		1.首先判断类型下面是否存在子集，存在的话提示信息
		$typeData = $this->typeAttr->where("tid={$tid}")->get();
		if($typeData){
			View::error('此分类下有分类,请先删除再进行操作');
		}
        $this->model->where("tid={$tid}")->delete();
		View::success("删除成功");
    }
	
	
//	属性列表
	public function attr(){
		$tid = Q("get.tid",0,'intval');
		$typeAttrData = Db::table('type_attr')
						->join('type','type_tid','=','tid')
						->where("tid={$tid}")
						->get();
//		p($typeAttrData);
		View::with('typeAttrData',$typeAttrData);
		
	    View::make();
	}	

	
//	添加属性
	public function addAttr(){
		$tid = Q('get.tid',0,'intval');
		if(IS_POST){
			if(!$this->typeAttr->store()) View::error($this->typeAttr->getError());
			View::success("添加成功",U('attr',array('tid'=>$tid)));
		}
	    View::make();
	}
//	编辑
	public function editAttr(){
		
		$taid = Q("get.taid",0,'intval');
		$typeAttrData = Db::table('type_attr')->where("taid={$taid}")->first();
//		p($typeAttrData);
//		2.修改数据
		if(IS_POST){
			if($this->typeAttr->edit()) View::success("修改成功",U('attr',array('tid'=>$typeAttrData['type_tid'])));
			View::error($this->typeAttr->getError());
		}
//		1.获取旧数据
		$taid = Q("get.taid",0,'intval');
//		查询数据库
		$oldData = $this->typeAttr->where("taid={$taid}")->find();
//		p($oldData);
//		分配数据
		View::with('oldData',$oldData);
	    View::make();
	}
	
//  删除
    public function delAttr(){
//  	p(Q("get."));
		$taid = Q('get.taid',0,'intval');
        $this->typeAttr->where("taid={$taid}")->delete();
		View::success("删除成功");
    }	
	
	
	

}